package com.sumset.presentacion;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.StringTokenizer;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JList;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ListModel;

import javax.swing.WindowConstants;
import javax.swing.SwingUtilities;

import com.sumset.cliente.Cliente;


/**
 * This code was edited or generated using CloudGarden's Jigloo
 * SWT/Swing GUI Builder, which is free for non-commercial
 * use. If Jigloo is being used commercially (ie, by a corporation,
 * company or business for any purpose whatever) then you
 * should purchase a license for each developer using Jigloo.
 * Please visit www.cloudgarden.com for details.
 * Use of Jigloo implies acceptance of these licensing terms.
 * A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
 * THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
 * LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
 */
public class VentanaChat extends javax.swing.JFrame implements ActionListener{

	private JScrollPane contenedor;

	private JTextArea campoMensajes;

	private JList listaContactos;

	private JScrollPane contenedor3;

	private JButton bEnviarMensaje;

	private JTextArea campoMensaje;

	private JScrollPane contenedor2;

	private static final VentanaChat instance = new VentanaChat();

	private Cliente cliente;
	
	private String ultimoMensaje;

	/**
	 * Auto-generated main method to display this JFrame
	 */

	public VentanaChat() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
			setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			getContentPane().setLayout(null);
			{
				contenedor = new JScrollPane();
				getContentPane().add(contenedor);
				contenedor.setBounds(25, 23, 322, 202);
				{
					campoMensajes = new JTextArea();
					contenedor.setViewportView(campoMensajes);
					campoMensajes.setEditable(false);
				}
			}
			{
				contenedor2 = new JScrollPane();
				getContentPane().add(contenedor2);
				contenedor2.setBounds(25, 265, 322, 41);
				{
					campoMensaje = new JTextArea();
					contenedor2.setViewportView(campoMensaje);
				}
			}
			{
				bEnviarMensaje = new JButton();
				getContentPane().add(bEnviarMensaje);
				bEnviarMensaje.setText("Enviar");
				bEnviarMensaje.setBounds(370, 274, 86, 23);
				bEnviarMensaje.addActionListener(this);
			}
			{
				contenedor3 = new JScrollPane();
				getContentPane().add(contenedor3);
				contenedor3.setBounds(367, 23, 122, 158);
				{

					listaContactos = new JList();
					contenedor3.setViewportView(listaContactos);

				}
			}

			pack();

			this.setSize(517, 367);

			this.setLocationRelativeTo(null);
			
			this.setResizable(false);

		} catch (Exception e) {
			//add your error handling code here
			e.printStackTrace();
		}
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		if(e.getSource()==bEnviarMensaje){			

			try {

				if(!campoMensaje.getText().equals(""))
					cliente.escribirMensaje(campoMensaje.getText());

				campoMensaje.setText("");

			} catch (Exception e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}
		}
	}

	public void actualizarListaContactos(String[] lista){

		getListaContactos().setListData(lista);
	}

	public void actualizarMensajes(String mensaje){
		
		StringTokenizer st = new StringTokenizer(mensaje, "-->");
		
		st.nextToken();		
		
		this.setUltimoMensaje(st.nextToken());

		getCampoMensajes().setText(getCampoMensajes().getText()+"\n\n"+mensaje);
	}

	/**
	 * @return the campoMensajes
	 */
	public JTextArea getCampoMensajes() {
		return campoMensajes;
	}

	/**
	 * @param campoMensajes the campoMensajes to set
	 */
	public void setCampoMensajes(JTextArea campoMensajes) {
		this.campoMensajes = campoMensajes;
	}

	/**
	 * @return the listaContactos
	 */
	public JList getListaContactos() {
		return listaContactos;
	}

	/**
	 * @param listaContactos the listaContactos to set
	 */
	public void setListaContactos(JList listaContactos) {
		this.listaContactos = listaContactos;
	}

	/**
	 * @return the campoMensaje
	 */
	public JTextArea getCampoMensaje() {
		return campoMensaje;
	}

	/**
	 * @param campoMensaje the campoMensaje to set
	 */
	public void setCampoMensaje(JTextArea campoMensaje) {
		this.campoMensaje = campoMensaje;
	}

	public static VentanaChat getInstance(){

		return instance;
	}

	/**
	 * @param cliente the cliente to set
	 */
	public void setCliente(Cliente cliente) {
		this.cliente = cliente;
	}

	/**
	 * @return the ultimoMensaje
	 */
	public String getUltimoMensaje() {
		return ultimoMensaje;
	}

	/**
	 * @param ultimoMensaje the ultimoMensaje to set
	 */
	public void setUltimoMensaje(String ultimoMensaje) {
		this.ultimoMensaje = ultimoMensaje;
	}
	
	



}
